#include <iostream>

using namespace std;

class Cube
{
    // 行为
    // 设置获取长宽高
    // 获取立方体面积
    // 获取立方体体积
    // 分别利用全局函数和成员函数 判断两个立方体是否相等
private:
    // 属性尽量设置为私有
    int m_L;
    int m_W;
    int m_H;

public:
    int setL(int L)
    {
        m_L = L;
    }
    int setW(int W)
    {
        m_W = W;
    }
    int setH(int H)
    {
        m_H = H;
    }
    int getL()
    {
        return m_L;
    }
    int getW()
    {
        return m_W;
    }
    int getH()
    {
        return m_H;
    }
    // 获取立方体面积
    int calculateS()
    {
        return 2 * m_W * m_L + 2 * m_H * m_W + 2 * m_L * m_H;
    }
    // 获取立方体体积
    int calculateV()
    {
        return m_H * m_L * m_W;
    }

    // 利用成员函数判断两个立方体是否相等
    bool isSameByClass(Cube &c)
    {
        if (m_L == c.getL() && m_H == c.getH() && m_W == c.getW())
        {
            return true;
        }
        return false;
    }
};

// 利用全局函数判断 两个立方体是否相等
bool isSame(Cube &c1, Cube &c2)
{
    if (c1.getL() == c2.getL() && c1.getH() == c2.getH() && c1.getW() == c2.getW())
    {
        return true;
    }
    return false;
}

int main()
{
    Cube c1;
    c1.setL(10);
    c1.setH(20);
    c1.setW(30);
    Cube c2;
    c2.setL(10);
    c2.setH(10);
    c2.setW(10);
    // 全局函数判断
    bool ret = isSame(c1, c2);
    if (ret)
    {
        cout << "c1和c2是相等的" << endl;
    }
    else
    {
        cout << "c1和c2是不相等的" << endl;
    }
    cout << "c1的面积是" << c1.calculateS() << endl;
    cout << "c1的体积是" << c1.calculateV() << endl;
    // 成员函数判断
    ret = c1.isSameByClass(c2);
    if (ret)
    {
        cout << "c1和c2是相等的" << endl;
    }
    else
    {
        cout << "c1和c2是不相等的" << endl;
    }
    system("pause");
    return 0;
}
